Prepare for per-target fingerprints
authorAlex Crichton <alex@alexcrichton.com>
Tue, 29 Jul 2014 17:20:42 +0000 (10:20 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Sat, 2 Aug 2014 07:16:19 +0000 (00:16 -0700)
commit79768eb0d9496ba2156a839c3a1c0758e51fd5a8
tree0f1be62194ebdfc9a8ec33d33fc99e4f9c2bb049
parent09addb7aaa2a13fcb4727a7066d9d563ae508149
Prepare for per-target fingerprints

This commit refactors all related infrastructure for the cargo_rustc module to
move the granularity of fingerprints from packages to targets. This involved
heavily modifying the `JobQueue` structure to understand a finer-grained target
for dirtiness propagation and dependency management, and then dealing with
fallout in the main module.

The fingerprint module has been refactored to support a per-target fingerprint.
A fallout of this change is that each build step has its own fingerprint,
including the custom build command step. This will be implemented in a future
commit.

As fallout of this reorganization, we are now exploiting the maximal parallelism
within packages themselves whereas before we were only partially parallelizing.
No new features were added as part of this commit, so I just ensured that all
the tests ran.
src/cargo/core/manifest.rs
src/cargo/ops/cargo_rustc/context.rs
src/cargo/ops/cargo_rustc/fingerprint.rs
src/cargo/ops/cargo_rustc/job.rs
src/cargo/ops/cargo_rustc/job_queue.rs
src/cargo/ops/cargo_rustc/layout.rs
src/cargo/ops/cargo_rustc/mod.rs
src/cargo/util/dependency_queue.rs
src/cargo/util/toml.rs
tests/test_cargo_compile.rs
tests/test_cargo_test.rs